Conventionally, automatic schedulers are used for scheduling ads. However, human operators frequently need to manually schedule some subset of ads that cannot otherwise be placed into the schedule. The operator may be presented with a list of unplaced ads and a current schedule view that allows the operators to see what is currently placed. The operator must then manually place the unplaced ads taking into consideration business conditions of the unplaced ad, each schedule position (also referred to as a “slot”), and any ad that needs to be moved. All of this presents a high task load to the operator, who must keep track of various potential alternatives when deciding how to place the unplaced ad in the schedule.